home *** CD-ROM | disk | FTP | other *** search
/ APDL Eductation Resources / APDL Eductation Resources.iso / earthmap / _earthmap / maps / getpar / c / file < prev    next >
Encoding:
Text File  |  1989-04-01  |  959 b   |  49 lines

  1. /*
  2.  *    opens and creates file
  3.  *    arguments:
  4.  *        name    character string containing filename
  5.  *        mode    0 open only
  6.  *            1 create only
  7.  *            2 try open, then create
  8.  *    returns file descriptor
  9.  */
  10. int 
  11. file (name, mode)
  12.     char           *name;
  13.     int             mode;
  14. {
  15. int             filedes, open (), creat ();
  16.     switch (mode)
  17.     {
  18.     case 0:
  19.     if ((filedes = open (name, 0)) == -1)
  20.     {
  21.         perror ("file()");
  22.         err ("file() can't open file %s\n", name);
  23.     }
  24.     break;
  25.     case 2:
  26.     if ((filedes = open (name, 2)) == -1)
  27.     case 1:
  28.         if ((filedes = creat (name, 0664)) == -1)
  29.         {
  30.         perror ("file()");
  31.         err ("file() can't create file %s\n", name);
  32.         }
  33.         else
  34.         {
  35.         if (-1 == close (filedes))
  36.         {
  37.             perror ("file()");
  38.             err ("file() unable to close file %s\n", name);
  39.         }
  40.         if (-1 == (filedes = open (name, 2)))
  41.         {
  42.             perror ("file()");
  43.             err ("file() unable to open file %s\n", name);
  44.         }
  45.         }
  46.     }
  47.     return (filedes);
  48. }
  49.